Decision Tree

의사결정나무(Decision Tree)
분산기준
종속변수 분류기준 알고리즘
이산형 카이제곱통계량 CHAID
지니지수 CART
엔트로피 지수 C4.5
연속형 ANOVA F-통계량 CHAID
분산감소량 CART
카이제곱통계량
이산형 변수의 다지 분할을 위한 CHAID 알고리즘에서 사용되는 각각의 변수들로 분리되었을 때,
카이제곱 통계량을 활용하여, 얻음 p-value가 가장 작은 변수를 활용하여 최적분리를 수행, 자식마디를 형성
지니지수
이산형 변수의 이진 분할을 위한 CART 알고리즘에서 사용되는 불순도 측도로 통계적 분산 정도를 정량화해서 표현한 값
지니지수를 가장 감소시키는 변수를 활용하여 최적분리를 수행, 자식마디를 형성
엔트로피지수
이산형 변수의 분리를 위해 C4.5 알고리즘에서 사용되는 불순도 측도로 계산식에 log를 사용하므로
정규화된 불순도 측도라고 할 수 있다.
엔트로피 지수가 가장 작은 변수를 활용하여 최적분리를 수행, 자식마디를 형성
ANOVA F-통계
F-통계량의 p-value가 작아지는 방향으로 가지분할을 수행한다.
분산감소량
분산의 감소량이 커지는 방향으로 가지 분할을 수행한다.
분산의 감소량이 커지면 분산은 감소한다.
install.packages(‘rpart’)

> index<-sample(c(1, 2), nrow(iris), replace=T, prob=c(0.7, 0.3))

> train<-iris[index==1, ]

> test<-iris[index==2, ]


> library(rpart)

> result<-rpart(data=train, Species~.)

> plot(result, margin=0.3)        # margin으로 그래프 외곽의 여백의 두께를 조정

> text(result)

> pred<-predict(result, newdata=test, type='class')

> table(condition=test$Species, pred)

            pred

condition    setosa versicolor virginica

  setosa         14          0         0

  versicolor      0         11         4

  virginica       0          1        10


> result

n= 110 


node), split, n, loss, yval, (yprob)

      * denotes terminal node


1) root 110 71 virginica (0.32727273 0.31818182 0.35454545)  

  2) Petal.Length< 2.45 36  0 setosa (1.00000000 0.00000000 0.00000000) *

  3) Petal.Length>=2.45 74 35 virginica (0.00000000 0.47297297 0.52702703)  

    6) Petal.Length< 4.75 33  0 versicolor (0.00000000 1.00000000 0.00000000) *

    7) Petal.Length>=4.75 41  2 virginica (0.00000000 0.04878049 0.95121951) *

110개로 구성된 train 데이터셋
1번은 뿌리마디로 110개중 71개의 virginica를 보유한다.
예를 들어 3번에서 74개의 virginica중 34개가 잘못 분류되었음을 나타낸다.